/**
 * userStore 可以是任何东西
 *
 * 第一个参数是应用程序中唯一的Id
 */
import { defineStore } from 'pinia';
// import { login } from '@/api/login/index';
import { ACCESS_TOKEN_KEY } from '@/core/cacheEnum';
import { Storage } from '@/utils/Storage';
// import { getInfo, logout } from '@/api/account/index';
import { UserState } from './types';

export const UseruStore = defineStore({
  id: 'user',
  state: (): UserState => ({
    token: Storage.get(ACCESS_TOKEN_KEY, null),
    name: 'amdin',
    avatar: '',
    // userInfo: {},
  }),
  actions: {
    // 清除token
    resetToken() {
      this.name = '';
      this.avatar = '';
      // this.userInfo = {};
      Storage.clear();
    },
    // 登录
    // async login(params: API.LoginParams) {
    //   try {
    //     const { data } = await login(params);
    //     this.setToken(data.token);
    //     return this.afterLogin();
    //   } catch (error) {
    //     return Promise.reject(error);
    //   }
    // },
    // // 登录成功保存token
    // setToken(token: string) {
    //   this.token = token ?? '';
    //   const ex = 7 * 24 * 60 * 60 * 1000;
    //   Storage.set(ACCESS_TOKEN_KEY, this.token, ex);
    // },
    // // 登录成功之后，获取用户信息等
    // async afterLogin() {
    //   try {
    //     const [userInfo] = await Promise.all([getInfo()]);
    //     this.name = userInfo.name;
    //     this.avatar = userInfo.headImg;
    //     this.userInfo = userInfo;
    //     return { userInfo };
    //   } catch (error) {
    //     console.error(error);
    //   }
    // },
    // // 退出登录
    // async logout() {
    //   await logout();
    //   this.resetToken();
    // },
  },
});
